package cn.stylefeng.guns.sys.modular.system.mapper;


import cn.stylefeng.guns.sys.modular.system.entity.BtySalaryChange;
import cn.stylefeng.guns.sys.modular.system.model.params.SalaryChangeParam;
import cn.stylefeng.guns.sys.modular.system.model.result.AttendAuditBtyAreaResult;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * 工资变动主表 mapper
 *
 * @author: tianzhen
 * @date: 2022/7/19 14:10
 */
public interface BtySalaryChangeMapper extends BaseMapper<BtySalaryChange> {

    /**
     * 获取所有的营运经理列表
     *
     * @param:  salaryChangeParam 查询条件
     * @return:
     */
    List<AttendAuditBtyAreaResult> getOperationManagerList(@Param("param") SalaryChangeParam salaryChangeParam);

    /**
     * 获取督导列表根据营运经理
     *
     * @param:  salaryChangeParam 查询条件
     * @return:
     */
    List<AttendAuditBtyAreaResult> getSupervisorList(@Param("param") SalaryChangeParam salaryChangeParam);

    /**
     * 获取店铺列表根据督导
     *
     * @param:  salaryChangeParam 查询条件
     * @return:
     */
    List<AttendAuditBtyAreaResult> getStoreList(@Param("param") SalaryChangeParam salaryChangeParam);

    /**
     * 获取店铺的员工
     *
     * @param:  salaryChangeParam 店铺名称
     * @return:
     */
    List<String> getEmpListByStoreName(@Param("storeName") String storeName);

    /**
     * 获取工资变动申请列表（分页）
     *
     * @param: storeName       店铺名称
     * @param: existRoleTels   领导的手机号（包含）
     * @param: unexistRoleTels 领导的手机号（排除）
     * @return:
     */
    Page<BtySalaryChange> getSalaryChangePage(@Param("page") Page page, @Param("param") SalaryChangeParam salaryChangeParam);

    /**
     * 获取工资变动申请列表
     *
     * @param: storeName       店铺名称
     * @param: existRoleTels   领导的手机号（包含）
     * @param: unexistRoleTels 领导的手机号（排除）
     * @return:
     */
    List<BtySalaryChange> getSalaryChangeList(@Param("param") SalaryChangeParam salaryChangeParam);

    /**
     * 人事审核修改
     *
     * @param: salaryChangeParam  审核状态以及驳回原因
     * @return:
     */
    int updatePersonnelAuditStatusById(@Param("param") SalaryChangeParam salaryChangeParam);

    /**
     * 人事审核批量修改
     *
     * @param: salaryChangeParam  审核状态以及驳回原因
     * @return:
     */
    int batchUpdatePersonnelAuditStatusById(@Param("param") SalaryChangeParam salaryChangeParam);
}
